package auxiliares;

import java.util.LinkedList;
import control.Planilla;
import entidades.Celda;
import interfas.Tabla;

/**
 * Clase Auxiliar: permite el recalculo del valor de las celdas, al ser modificadas 
 * 
 * @author  Grupo N11
 * @author   Prinsich Bernz, Emilio J. A.
 * @author 	 Solia, Guillermo D.
 * @version  1.5
 */
public class Auxiliar {

	//Variables---------------------------------------------------------------------------------
	/**Variable de control y traducion de codigo.*/
	private static Planilla spreadsheet;
	/**Listado de hojas.*/
	private static LinkedList<Tabla> tablas = new LinkedList<Tabla>();

	//Metodos---------------------------------------------------------------------------------
	/**
	 * agraga la panilla al clase.
	 * @param sheet
	 * 			Planilla de calsulo.
	 */
	public static void add(Planilla sheet){
		spreadsheet = sheet;
	}
	
	/**
	 * Agrega a las lista de tabla un nueva tabla.
	 * @param tab
	 * 			Nueva tabla.
	 */
	public static void add(Tabla tab){
		tablas.add(tab);
	}
	
	/**
	 * Actuliza el valor de las celdas.
	 * @param cell
	 * 			celda que debe ser actulizada.
	 */
	public static void actualizar(Celda cell){
		String formula = cell.getFormula();
		int hoja = cell.getMiHoja();
		int fila = cell.getMiFila();
		int columna = cell.getMiColumna();
		tablas.get(hoja).evaluate(spreadsheet, fila, columna+1,formula);
	}
}
